package com.coolrui.domain.order.repository;

import com.coolrui.common.system.ApiList;
import com.coolrui.domain.order.entity.UserOrder;

import java.util.Optional;

public interface UserOrderRepository {
    /**
     * 创建订单
     *
     * @param userOrder 订单创建数据
     * @return 订单实体
     */
    int createOrder(UserOrder userOrder);

    /**
     * 根据订单ID查找订单（自定义XML方法）
     * @param orderId 订单ID
     * @return 订单实体 Optional 对象
     */
    Optional<UserOrder> findByOrderId(Long orderId);

    /**
     * 根据订单ID查找订单
     * @param orderId 订单ID
     * @return 订单实体 Optional 对象
     */
    UserOrder getOrder(Long orderId);

    /**
     * 分页查找用户订单列表
     * @param userId 用户ID
     * @param page 页码
     * @param pageSize 每页订单条数
     * @return 订单列表
     */
    ApiList<UserOrder> getOrderList(Long userId, Integer page, Integer pageSize);

    /**
     * 根据订单ID更新订单
     * @param orderId 订单ID
     * @return 订单实体
     */
    int updateOrder(Long orderId,UserOrder userOrder);
}